package ch.hslu.dmg;

import java.util.*;

import ch.hslu.dmg.model.Belegung;
import ch.hslu.dmg.model.Maschine;
import ch.hslu.dmg.model.Mitarbeiter;
import ch.hslu.dmg.model.Teil;

public class UnterteilCalculation {
	private long teilId;
	private long belongsTo; //Oberteil to which it belongs
	private Teil teil = null;
	private int depth;
	private Belegung belegung = null;
	private FertigungsHelper fg = new FertigungsHelper();
	
	public UnterteilCalculation(long teilId, long oberteilId, int depth){
		this.teilId = teilId;
		this.belongsTo = oberteilId;
		this.depth = depth;
	}
	
	private void calcBelegung(){
		//first get the machine that is needed
		Teil t = getTeil();
		System.out.println("-----");
		System.out.println("Calculating when " + t.toString() + " (" + t.getTeilid() + ") can be produced.");
		if(t.getLieferantid() != null){
			System.out.println("Teil " + t.toString() + " (" + t.getTeilid() + ") is supplied by " + t.getLieferantid().getName() + ".");
			return;
		}
		Maschine m = t.getFertigungid().getMachineid();
		System.out.println("To produce " + t.toString() + " the machine " + m.getBezeichnung() + " is needed.");
		//second get all possible employes
		List<Mitarbeiter> mitarbeiterList = m.getMitarbeiterList();
		System.out.println("The machine " + m.getBezeichnung() + " can be controlled by " + mitarbeiterList.size() + " employes.");
		
		//now find the first possible Belegung
	}
	
	public Teil getTeil(){
		if(this.teil != null) return teil;
		
		this.teil = fg.getTeilById(this.teilId);
		return this.teil;
	}
}
